package com.idata.model.entity;

import com.idata.model.response.MatchUserResponse;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @File UserEntity.Java
 * @Modify Time      @Author    @Version    @Description
 * ------------      -------    --------    -----------
 * 2023/9/22         yd.j      1.0         None
 */
@Data
public class UserEntity {

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private int age;
    /**
     * 民族
     */
    private String nation;
    /**
     * 学历
     */
    private String degree;
    /**
     * 职业
     */
    private String word;
    /**
     * 籍贯
     */
    private String place;

    /**
     * 身份证
     */
    private String id;
    /**
     * 手机号
     */
    private Map<String, Integer> phone;

    /**
     * 关键次
     */
    private List<String> keyWord;

    /**
     * 纠纷热词
     */
    private List<String> hotWord;

    /**
     * 纠纷相关人员
     */
    private List<UserEntity> relationPersonal;

    /**
     * 纠纷历史
     */
    private List<DisputeEntity> caseHistory;

    /**
     * 头像
     */
    private byte[] headImg;

    /**
     * 纠纷总数
     */
    private int disputeNumber;
    /**
     * 警情数量
     */
    private int policeNumber;
    /**
     * 案件数量
     */
    private int caseNumber;
    /**
     * 高危纠纷
     */
    private int highRiskNumber;

    @Data
    public static class DisputeRelation {
        /**
         * 相关人员
         */
        private UserEntity user;
        /**
         * 关系
         */
        private String relation;
        /**
         * 与用户产生纠纷次数
         */
        private int sizeDispute;
    }

    /**
     * 转成相应的人物
     * @return
     */
    public MatchUserResponse convertUserResponse() {

        return MatchUserResponse.builder()
                .age(this.age)
                .degree(this.degree)
                .headImg(this.headImg)
                .name(this.name)
                .nation(this.nation)
                .place(this.place)
                .phone(new ArrayList<>(this.phone.keySet()))
                .build();
    }


}
